package com.cn.common.util;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.util.StringUtils;

import javax.servlet.http.HttpServletRequest;

public class PageUtil {
    /**
     * 通过此方法启动分页查询
     * @Param<T> 这里的T为泛型左侧有<T>表示的方法为泛型方法
     *      当类上没有写泛型时，方法上要加泛型必须在左右两边都加
     *
     *      RequestContextHolder 使用到threadLocal
     * @return
     */
    public static <T> Page<T> startPage(){
        //获取请求对象  如果项目别的地方都需要获取request对象的话，可以把这提取出去形成一个工具类，ServletUtil
//        ServletRequestAttributes requestAttributes =
//                (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
//        HttpServletRequest request = requestAttributes.getRequest();
        //获取请求中的分页分页参数
        HttpServletRequest request = ServletUtil.getRequest();

        //当前页码数
        String pageCurrentstr = request.getParameter("pageCurrent");
        //一页显示多少条数据
        String pageSizestr = request.getParameter("pageSize");

        //判断是否有参数 使用Spring提供的StringUtils工具类
        Integer pageCurrent = StringUtils.hasLength(pageCurrentstr)?Integer.parseInt(pageCurrentstr):1;
        Integer pageSize = StringUtils.hasLength(pageSizestr)?Integer.parseInt(pageSizestr):3;

        //使用自己封装的StringUtil工具类
//        int pageCurrent=StringUtil.isEmpty(pageCurrentstr)?1:Integer.parseInt(pageCurrentstr);
//        int pageSize=StringUtil.isEmpty(pageSizestr)?3:Integer.parseInt(pageSizestr);
        return PageHelper.startPage(pageCurrent,pageSize);

    }
}
